Edge Mesh is a throwaway proof-of-concept / learning experiment built on top of the Greengrass reference implementation. It is not a supported or maintained deliverable and may be removed. The reference implementation itself is long-lived; Edge Mesh is not.
Edge Mesh
The Edge Mesh extends Milwaukee Tool's asset-scanning and remote-control reach beyond a single connected gateway. One cellular-connected core (a CompuLab iMX8 running AWS IoT Greengrass) forms a small WiFi mesh with a fleet of cheap Raspberry Pi mesh-nodes, so a jobsite or warehouse can be covered by spreading out Pis instead of relying on one gateway's radio range.
The 10.88.0.0/24 mesh is an isolated local island. It is not an internet connection. Every device still reaches AWS through the Greengrass core device. The mesh exists so the nodes can talk to each other: Pis forward scans to the core, the core relays tool-control commands out to a Pi, and nodes report network topology for the live map. If you keep this one idea in mind, everything else on these pages will make sense.
The big picture
A Pi scans a tool's BLE advertisement, builds the expected payload, and publishes it to the core's local Moquette MQTT broker over the mesh. The core's MQTT Bridge relays that topic to AWS IoT Core over cellular (or WiFi, where the core has a connection). The mesh carries the scan from Pi to core; only the core has the link out.
The mesh does three things
Everything the Edge Mesh does is one of these three jobs. Each links to its walk-through on the Data Path page.
| # | Capability | In one sentence |
|---|---|---|
| 1 | Asset-scan upload | Pis scan nearby BLE tools and forward detections to the core, which fans them into the cloud, multiplying scan coverage. |
| 2 | Client-device provisioning | A Pi obtains its AWS IoT certificate over the mesh, relayed through the core, without ever touching the internet directly. |
| 3 | EdgeMesh Bluetooth control | An operator drives a ONE-KEY tool from some remote software client; the core relays opaque OpenLink bytes over the mesh to whichever Pi is in Bluetooth range of the tool. |
Choose your path
The Edge Mesh spans three engineering disciplines. Read the page that matches what you're here to do; you do not need to read all of them if you're not interested.
| If you are a… | Start here | Because |
|---|---|---|
| Firmware / kernel engineer | Hardware & RF → Architecture | The radio constants (IBSS, channel 1, fixed BSSID), the kernel-module cross-build, and the brcmfmac↔ath9k_htc interop wall are firmware/kernel territory. |
| Electrical engineer | Hardware & RF | The iMX8 + Pi hardware, the ath9k_htc dongle decision, and why the onboard Intel/Broadcom radios cannot be on the mesh. |
| Software engineer | Data Path → Architecture | The scan-to-cloud path, the provisioning relay, the tool-control flow, and the Greengrass component map. |
| Operator / bringing up hardware | the runbooks (see below) | Step-by-step procedures to image, provision, and verify a fleet. |
Glossary: the 8 terms you'll hit first
One line each; the full glossary lives in tools/mesh/ARCHITECTURE.md.
| Term | Meaning |
|---|---|
| core | The one CompuLab iMX8 that runs Greengrass and has the cellular uplink; reserved at 10.88.0.1 on the mesh. |
| mesh-node | A Raspberry Pi on the mesh (mesh-node-N gets 10.88.0.(N+2), starting at 10.88.0.2); scans BLE and relays tool control. |
bat0 | The virtual network interface batman-adv creates. It is the address you actually ping; the raw WiFi interface is plumbing underneath. |
| TQ | "Transmit Quality," batman's link-quality metric, 0-255, higher is better. The health-portal map colors links by TQ. |
| IBSS | WiFi ad-hoc mode (peer-to-peer, no access point). The radio mode the mesh runs on. |
| RP2 | The asset-scan payload format the Pi builds from a BLE advertisement and the core forwards to the cloud. |
| MPBID | The unique device identifier; used directly as the AWS IoT thing name. Mesh-Pi MPBIDs begin with FFFC. |
| OpenLink | Milwaukee Tool proprietary protocol; the mesh relays OpenLink packets opaquely. |
Where the code lives
The docs on this site are primarily conceptual and meant for quick onboarding. The source of truth lives next to the code in the iot-edge repository:
tools/mesh/ARCHITECTURE.md: the authoritative layered-model explainer (radio →batman-adv→ IP), the boot chain, and the full glossary. Read this first when you touch the mesh.tools/mesh/README.md: Pi mesh bring-up how-to.tools/mesh/COMPULAB-IMX8.md: the CompuLab core: kernel-module cross-build, the radio trap, and provisioning.tools/mesh/runbooks/: step-by-step operational procedures (core bring-up, Pi imaging, Pi provisioning, kernel cross-build, client-device provisioning, full-fleet bring-up, EdgeMesh Bluetooth control).README.md(repo root): the overall Greengrass runtime, provisioning, and component map.
Related sections
- Device Provisioning: the two-phase certificate model the mesh Pis reuse for their own client-device provisioning.
- Asset Scans: the asset-scan payload format the mesh adheres to and forwards.
- Device Shadows: device state over MQTT shadow topics; the mesh Pis carry a per-Pi
configshadow relayed through the core.